package com.ruyuan.eshop.construction.api;

import com.ruyuan.eshop.common.core.JsonResult;
import com.ruyuan.eshop.common.core.PageResult;
import com.ruyuan.eshop.construction.domain.dto.AuditInfoDTO;
import com.ruyuan.eshop.construction.domain.dto.DraftDetailDTO;
import com.ruyuan.eshop.construction.domain.dto.ExecAuditDTO;
import com.ruyuan.eshop.construction.domain.request.AuditRequest;
import com.ruyuan.eshop.construction.domain.request.QueryDraftRequest;
import com.ruyuan.eshop.construction.domain.request.QueryTodoListRequest;

/**
 * 审批服务接口
 *
 * @author zhonghuashishan
 */
public interface AuditApi {

    /**
     * 获取待办列表
     *
     * @param request
     * @return com.ruyuan.eshop.common.core.JsonResult<com.ruyuan.eshop.common.core.PageResult<com.ruyuan.eshop.construction.domain.dto.AuditInfoDTO>>
     * @author zhonghuashishan
     */
    JsonResult<PageResult<AuditInfoDTO>> getTodoList(QueryTodoListRequest request);

    /**
     * 获取草稿详情
     *
     * @param request
     * @return com.ruyuan.eshop.common.core.JsonResult<com.ruyuan.eshop.construction.domain.dto.DraftDetailDTO>
     * @author zhonghuashishan
     */
    JsonResult<DraftDetailDTO> getDraftDetail(QueryDraftRequest request);


    /**
     * 流程审批
     *
     * @param request
     * @return com.ruyuan.eshop.common.core.JsonResult<com.ruyuan.eshop.construction.domain.dto.ExecAuditDTO>
     * @author zhonghuashishan
     */
    JsonResult<ExecAuditDTO> execAudit(AuditRequest request);

}
